# pip install face_recognition -i https://mirrors.aliyun.com/pypi/simple/
import os
import face_recognition

path = "D:/项目/python/人脸识别/testimge"
files = os.listdir(path)
testimge_names = []
testimge_faces = []
for file in files:
    # 加载位于指定路径下的图片文件，并将其转换为可供 face_recognition 库使用的图像对象（实际上是 numpy 数组格式）
    image = face_recognition.load_image_file(path + "/" + file)
    face_encodings_list = face_recognition.face_encodings(image)
    if not face_encodings_list:
        print(f"警告: 在文件 {file} 中未检测到人脸.")
        continue  # 或者采取其他行动，如跳过该文件或记录错误日志
    encoding = face_encodings_list[0]  # 默认使用第一张脸的编码
    # 如果需要确保每张图片只有一张脸，可以检查列表长度
    if len(face_encodings_list) > 1:
        print(f"警告: 文件 {file} 中检测到多于一张人脸。仅使用第一张人脸进行编码。")
    testimge_faces.append(encoding)
    testimge_names.append(file)
unknown_image = face_recognition.load_image_file("D:/项目/python/人脸识别/13-2.png")
unknown_encoding = face_recognition.face_encodings(unknown_image)[0]
results = face_recognition.compare_faces(
    testimge_faces, unknown_encoding, tolerance=0.4
)
print("人脸识别检测结果如下：")
for i in range(len(testimge_names)):
    print(testimge_names[i] + ":", end="")
    if results[i]:
        print("检测到相同")
    else:
        print("不同")
